/*
 * jQuery Carousel Plugin
 *
 * Supports 3-6 elements
 *
 * http://www.juvenpajares.com/
 *
 * Copyright (c) 2012, Juven A. Pajares (http://juvenpajares.com)
 * Liscensed under the MIT License (MIT-LICENSE.txt)
 * http://www.opensource.org/licenses/mit-license.php
 * Created: 2012-01-13 | Updated: 2012-01-18
 * 
 */

(function($) {
    $.fn.carousel = function(options) {
        var settings = $.extend({
            'boxes': '.defaultBoxes',
			'layer2': '80',
			'layer3': '160'
        }, options);
		var thisBox = $(settings.boxes);
			var slidespeed = 500;
			var scale100 = {'-webkit-transform': 'scale(1)', '-moz-transform': 'scale(1)', 'zIndex': '3'};
			var scale80 = {'-webkit-transform': 'scale(0.8)', '-moz-transform': 'scale(0.8)', 'zIndex': '2'};
			var scale60 = {'-webkit-transform': 'scale(0.6)', '-moz-transform': 'scale(0.6)', 'zIndex': '1'};
			var scale40 = {'-webkit-transform': 'scale(0.4)', '-moz-transform': 'scale(0.4)', 'zIndex': '0'};
			var newXpos = parseInt(thisBox.parent().css('width'))/2 -parseInt(thisBox.css('width'))/2;
			var newYpos = parseInt(thisBox.parent().css('height'))/2 -parseInt(thisBox.css('height'))/2;
			var nYpos = newYpos - 0;
			var nXpos1 = newXpos - 0;
			var nXpos2 = newXpos - settings.layer2;
			var nXpos3 = newXpos - -settings.layer2;
			var nXpos4 = newXpos - settings.layer3;
			var nXpos5 = newXpos - -settings.layer3;
			var pos1 = {left: nXpos1, top: nYpos};
			var pos2 = {left: nXpos2, top: nYpos};
			var pos3 = {left: nXpos3, top: nYpos};
			var pos4 = {left: nXpos4, top: nYpos};
			var pos5 = {left: nXpos5, top: nYpos};
		thisBox.each(function(i) {
			var thisIndex = i + 1;
			zindex = $(this).siblings().andSelf().length - thisIndex ;
			$(this).addClass('box' + thisIndex);
			$(this).css('zIndex', zindex);
		});
		if (thisBox.length == 6) {
		thisBox.each(function() {
			if ($(this).is(':first-child')) {
				$(this).css(scale100).css(pos1);
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).css(scale80).css(pos2).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':nth-child(3)')) {
				$(this).css(scale80).css(pos3).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':nth-child(4)')) {
				$(this).css(scale60).css(pos4).fadeTo('fast', 0.6);
			}
			else if ($(this).is(':nth-child(5)')) {
				$(this).css(scale60).css(pos5).fadeTo('fast', 0.6);
			}
			else if ($(this).is(':last-child')) {
				$(this).css(scale40).css(pos1).fadeTo('fast', 0.4);
			}
		});
		thisBox.live('click', function() {
			var child6 = $(this).parent().find(':last-child');
			var child5 = $(this).parent().find(':nth-child(5)');
			var child4 = $(this).parent().find(':nth-child(4)');
			var child3 = $(this).parent().find(':nth-child(3)');
			var child2 = $(this).parent().find(':nth-child(2)');
			var child1 = $(this).parent().find(':first-child');
			if ($(this).is(':last-child')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child5.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child3.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child1.each(function() {
					$(this).animate(pos1);
					$(this).css(scale40).fadeTo('fast', 0.4);
				});
				child2.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child4.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(5)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child3.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child1.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child2.each(function() {
					$(this).animate(pos1);
					$(this).css(scale40).fadeTo('fast', 0.4);
				});
				child4.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child6.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(4)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child6.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child5.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child3.each(function() {
					$(this).animate(pos1);
					$(this).css(scale40).fadeTo('fast', 0.4);
				});
				child1.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child2.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(3)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child1.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child2.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child4.each(function() {
					$(this).animate(pos1);
					$(this).css(scale40).fadeTo('fast', 0.4);
				});
				child6.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child5.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child4.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child6.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child5.each(function() {
					$(this).animate(pos1);
					$(this).css(scale40).fadeTo('fast', 0.4);
				});
				child3.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child1.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':first-child')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child2.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child4.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child6.each(function() {
					$(this).animate(pos1);
					$(this).css(scale40).fadeTo('fast', 0.4);
				});
				child5.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child3.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
		});
		}
		else if (thisBox.length == 5) {
		thisBox.each(function() {
			if ($(this).is(':first-child')) {
				$(this).css(scale100).css(pos1);
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).css(scale80).css(pos2).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':nth-child(3)')) {
				$(this).css(scale80).css(pos3).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':nth-child(4)')) {
				$(this).css(scale60).css(pos4).fadeTo('fast', 0.6);
			}
			else if ($(this).is(':last-child')) {
				$(this).css(scale60).css(pos5).fadeTo('fast', 0.6);
			}
		});
		thisBox.live('click', function() {
			var child5 = $(this).parent().find(':last-child');
			var child4 = $(this).parent().find(':nth-child(4)');
			var child3 = $(this).parent().find(':nth-child(3)');
			var child2 = $(this).parent().find(':nth-child(2)');
			var child1 = $(this).parent().find(':first-child');
			if ($(this).is(':last-child')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child3.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child1.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child2.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child4.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(4)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child5.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child3.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child1.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child2.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(3)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child1.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child2.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child4.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child5.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child4.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child5.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child3.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child1.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':first-child')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child2.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child4.each(function() {
					$(this).animate(pos4);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child5.each(function() {
					$(this).animate(pos5);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child3.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
		});
		}
		else if (thisBox.length == 4) {
		thisBox.each(function() {
			if ($(this).is(':first-child')) {
				$(this).css(scale100).css(pos1);
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).css(scale80).css(pos2).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':nth-child(3)')) {
				$(this).css(scale80).css(pos3).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':last-child')) {
				$(this).css(scale40).css(pos1).fadeTo('fast', 0.4);
			}
		});
		thisBox.live('click', function() {
			var child4 = $(this).parent().find(':last-child');
			var child3 = $(this).parent().find(':nth-child(3)');
			var child2 = $(this).parent().find(':nth-child(2)');
			var child1 = $(this).parent().find(':first-child');
			if ($(this).is(':last-child')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child3.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child1.each(function() {
					$(this).animate(pos1);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child2.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(3)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child1.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child2.each(function() {
					$(this).animate(pos1);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child4.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child4.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child3.each(function() {
					$(this).animate(pos1);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child1.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':first-child')) {
				$(this).animate(pos1);
				$(this).css(scale100).fadeTo('fast', 1);
				child2.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child4.each(function() {
					$(this).animate(pos1);
					$(this).css(scale60).fadeTo('fast', 0.6);
				});
				child3.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
		});
		}
		else if (thisBox.length == 3) {
		thisBox.each(function() {
			if ($(this).is(':first-child')) {
				$(this).css(scale100).css(pos1);
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).css(scale80).css(pos2).fadeTo('fast', 0.8);
			}
			else if ($(this).is(':last-child')) {
				$(this).css(scale80).css(pos3).fadeTo('fast', 0.8);
			}
		});
		thisBox.live('click', function() {
			var child3 = $(this).parent().find(':last-child');
			var child2 = $(this).parent().find(':nth-child(2)');
			var child1 = $(this).parent().find(':first-child');
			if ($(this).is(':last-child')) {
				$(this).animate(pos1);
				$(this).css('zIndex', '6').fadeTo('fast', 1);
				$(this).css(scale100);
				child1.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child2.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':nth-child(2)')) {
				$(this).animate(pos1);
				$(this).css('zIndex', '6').fadeTo('fast', 1);
				$(this).css(scale100);
				child3.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child1.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
			else if ($(this).is(':first-child')) {
				$(this).animate(pos1);
				$(this).css('zIndex', '6').fadeTo('fast', 1);
				$(this).css(scale100);
				child2.each(function() {
					$(this).animate(pos2);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
				child3.each(function() {
					$(this).animate(pos3);
					$(this).css(scale80).fadeTo('fast', 0.8);
				});
			}
		});
		}
	};
})(jQuery);